home *** CD-ROM | disk | FTP | other *** search
/ PC World 2006 September / PCWorld_2006-09_cd.bin / v cisle / vlink / V-Link.exe / V-Link.vbs
Text File  |  2006-07-14  |  6KB  |  168 lines

  1. Dim VLink(100)
  2. Dim VTrue(100)
  3. Dim CLSID(100)
  4. dim counter
  5. dim regkey
  6. SET MyShell = Wscript.CreateObject("Wscript.Shell")
  7. SET MyFiles = CreateObject("Scripting.FileSystemObject")
  8. Set AppShell = CreateObject("Shell.Application")
  9.  
  10. WhatsDone
  11.  
  12. temp=msgbox ("Chcete vytvo°it virtußlnφ slo₧ku?",4," V-Link")
  13. if temp = 6 then 
  14.     NeuerEintrag
  15. else 
  16.     temp=msgbox ("Chcete virtußlnφ slo₧ku(y) zruÜit?",1," V-Link")
  17.     if temp = 2 then 
  18.         wscript.quit
  19.     else
  20.     EintragEntfernen
  21.     end if
  22. end if
  23.  
  24. Sub NeuerEintrag()
  25.     on error resume next
  26.     err.clear
  27.     Set AppFolder = Appshell.BrowseForFolder(0, "Vyberte novou slo₧ku, na kterou chcete vytvo°it odkaz na jinΘm disku...",  &H0001, 17)
  28.     verz1 = AppFolder.ParentFolder.ParseName(AppFolder.Title).Path
  29.  
  30.     if verz1="" then
  31.         msgbox "Operaci nelze provΘst." & chr(13) & "Bu∩ jste dialogovΘ okno zav°eli, " & chr(13) & "nebo se vybranß slo₧ka k vytvo°enφ virtußlnφ slo₧ky nehodφ",16," V-Link"        
  32.         wscript.quit
  33.     end if
  34.  
  35.     If Err.Number > 0 Then
  36.         GanzesLaufwerk=1
  37.         i = InStr(Appfolder, ":")
  38.         verz1 = Mid(Appfolder, i - 1, 1) & ":\"
  39.     End If
  40.     TrueName=verz1
  41.  
  42.     do
  43.         verz1=mid(verz1,2)        
  44.     loop while instr(verz1,"\")
  45.  
  46.     for tmp = 0 to counter
  47.         if VTrue(tmp) = TrueName then
  48.             i=instr(VLink(tmp),".{000")
  49.             showonly=left(Vlink(tmp),i-1)
  50.             temp=msgbox (TrueName & " je ji₧ namapovßna jako " & chr(13) & showonly & chr(13) & chr(13) & "Chcete p°esto pokraΦovat?",4, "V-Link")
  51.             if temp=7 then Wscript.quit
  52.             exit for
  53.         end if
  54.     next
  55.  
  56.     err.clear
  57.     Set AppFolder = Appshell.BrowseForFolder(0, "Nynφ vyberte slo₧ku, kam chcete " & verz1 & " virtußlnφ slo₧ku umφstit...",  &H0001, 17)
  58.     verz2 = AppFolder.ParentFolder.ParseName(AppFolder.Title).Path
  59.     If Err.Number > 0 Then
  60.         i = InStr(Appfolder, ":")
  61.         verz2 = Mid(Appfolder, i - 1, 1) & ":\"
  62.     End If
  63.  
  64.     if verz2="" then
  65.         msgbox "Operaci nelze provΘst." & chr(13) & "Bu∩ jste dialogovΘ okno zav°eli, " & chr(13) & "nebo se cφlovß slo₧ka k vytvo°enφ virtußlnφ slo₧ky nehodφ.",16," V-Link"        
  66.         wscript.quit
  67.     end if
  68.  
  69.     temp=verz2 & "\" & verz1
  70.     temp=replace(temp,"\\","\")
  71.     if temp=showonly then
  72.         msgbox "Operaci nelze provΘst.",16," V-Link"
  73.         wscript.quit
  74.     end if
  75.  
  76.     if left(truename,2)=left(verz2,2) then
  77.         temp=msgbox ("Slo₧ka se nachßzφ na stejnΘm disku. " & chr(13) & "Chcete p°esto pokraΦovat?",36," V-Link")
  78.         if temp = 7 then wscript.quit
  79.     end if
  80.  
  81.     if GanzesLaufwerk=1 then
  82.         temp=msgbox ("Mß se skuteΦn∞ cel² disk " & verz1 & chr(13) & " objevit v " & verz2 & " ?",4, "V-Link")        
  83.         if temp=7 then wscript.quit
  84.         verz1=verz1 & "___" & left(verz1,1) & "___"
  85.     end if
  86.  
  87.     counter = counter + 1 
  88.  
  89.     if counter = 100 then
  90.         msgbox "Operaci nelze provΘst." & chr(13) & "Bylo dosa₧eno maximßlnφho poΦtu virtußlnφch slo₧ek.",16," V-Link"        
  91.         wscript.quit
  92.     end if
  93.  
  94.     if counter = 10 then 
  95.         regkey="HKCR\CLSID\{00000000-00AB-FE1B-0ECC-" & string(10,"0") & counter & "}\"
  96.     end if
  97.  
  98.     endung=replace(regkey,"HKCR\CLSID\","")
  99.     endung=replace(endung,"\","")
  100.     temp=verz2 & "\" & verz1 & "." & endung
  101.     temp=replace(temp,"\\","\")
  102.     err.clear
  103.     myfiles.createfolder(temp)
  104.     if err.number > 0 then
  105.         msgbox "Nelze vytvo°it po₧adovanou virtußlnφ slo₧ku.",48," V-Link"        
  106.         wscript.quit
  107.     end if
  108.     myshell.regwrite regkey,"<V-Link>","REG_SZ"
  109.     myshell.regwrite regkey & "NeverShowExt","","REG_SZ"
  110.     myshell.regwrite regkey & "Shell\","","REG_SZ"
  111.     myshell.regwrite regkey & "Shell\Open\","TrueName","REG_SZ"
  112.     myshell.regwrite regkey & "Shell\Open\VTrue",TrueName,"REG_SZ"
  113.     myshell.regwrite regkey & "Shell\Open\VLink",temp,"REG_SZ"
  114.     myshell.regwrite regkey & "Shell\Open\Command\","explorer.exe /idlist,%I,%L","REG_SZ"
  115.     myshell.regwrite regkey & "Shell\Open\ddeexec\","[ViewFolder(" & chr(34) & "%1" & chr(34) & "," & chr(34) & TrueName & chr(34) & ",%S)]","REG_SZ"
  116.     myshell.regwrite regkey & "Shell\Open\ddeexec\application\","Folders","REG_SZ"
  117.     myshell.regwrite regkey & "Shell\Open\ddeexec\topic\","AppProperties","REG_SZ"
  118.     myshell.regwrite regkey & "Shell\Open\ddeexec\ifexec\","[]","REG_SZ"
  119.     myshell.regwrite regkey & "DefaultIcon\","shell32.dll,3","REG_SZ"
  120.     msgbox TrueName & " byla p°i°azena " & verz2 & " ." & chr(13) & chr(13) & "Jednß se o prßzdnou slo₧ku s Class-ID," & chr(13) & ", kterß odkazuje pouze na vlastnφ cφlovou slo₧ku." & chr(13) & "K odstran∞nφ takovΘ virtußlnφ slo₧ky pou₧ijte tento skript." & chr(13) & "Dojde i k nevratnΘmu oÜet°enφ vÜech polo₧ek v registru.",," V-Link"
  121. End Sub
  122.  
  123. Sub EintragEntfernen()
  124.     if counter=-1 then 
  125.         msgbox "Nebyly nalezeny ₧ßdnΘ odkazy na virtußlnφ slo₧ky.",0," Nemßm co d∞lat..."
  126.     else
  127.         for temp=counter to 0 step -1
  128.             i=instr(VLink(temp),".{0000")
  129.             showonly=left(VLink(temp),i-1)
  130.             tmp=msgbox ("Chcete V-Link " & showonly & " ( ==> " & VTrue(temp) & ") odstranit?",1, " V-Link")
  131.             if tmp=2 then wscript.quit
  132.             if tmp=1 then
  133.                 myshell.regdelete clsid(temp) & "DefaultIcon\"
  134.                 myshell.regdelete clsid(temp) & "Shell\Open\ddeexec\application\"
  135.                 myshell.regdelete clsid(temp) & "Shell\Open\ddeexec\topic\"
  136.                 myshell.regdelete clsid(temp) & "Shell\Open\ddeexec\ifexec\"
  137.                 myshell.regdelete clsid(temp) & "Shell\Open\ddeexec\"
  138.                 myshell.regdelete clsid(temp) & "Shell\Open\Command\"
  139.                 myshell.regdelete clsid(temp) & "Shell\Open\"
  140.                 myshell.regdelete clsid(temp) & "Shell\"
  141.                 myshell.regdelete clsid(temp)
  142.                 tmp=msgbox (showonly & " byla z logickΘho hlediska odstran∞na. Mß se slo₧ka odstranit i fyzicky?",36, " V-Link")                
  143.                 on error resume next
  144.                 if tmp=6 then
  145.                     set try2kill=MyFiles.GetFolder(VLink(temp))
  146.                     try2kill.delete
  147.                 end if
  148.             end if
  149.         next
  150.     end if
  151. End Sub
  152.  
  153. sub WhatsDone()
  154. on error resume next
  155.     counter = 0
  156.     do
  157.         if counter > 9 then 
  158.             regkey="HKCR\CLSID\{00000000-00AB-FE1B-0ECC-" & string(10,"0") & counter & "}\"    
  159.         else    
  160.             regkey="HKCR\CLSID\{00000000-00AB-FE1B-0ECC-" & string(11,"0") & counter & "}\"
  161.         end if
  162.         CLSID(counter)=regkey
  163.         VLink(counter)=myshell.regread (regkey & "shell\open\VLink")
  164.         VTrue(counter)=myshell.regread (regkey & "shell\open\VTrue")
  165.         counter=counter + 1
  166.     loop while err.number=0
  167.     counter=counter-2
  168. end sub